The invention relates generally to tools for generating software components.
In recent years, many software developers have embraced an approach to software development that is component-based. A software component is a reusable piece of software in binary form that is intended to inter-operate with other software, such as an application program. In some cases, the software component is developed independently from the application program. Developers can provide greater flexibility with their application programs by structuring portions or features of the software as separate components.
Some components are written to support the well-known Component Object Model (COM), an object-based programming model developed by Microsoft® Corporation as a binary standard for object interoperability. Programs that support COM may be written in an object oriented programming language such as C++, JAVA programming language, and VISUAL BASIC programming language for example. COM enables software suppliers to package their functions into reusable software components for use by application developers. Thus, COM allows COM-compliant applications and components to cooperate with one another, even if written by different suppliers, in different languages, or while executing on different machines (with different operating systems).
COM components can be implemented in Dynamic Linked Library (DLL) files or executable files, and then linked to a portion of a COM-compliant application program. A COM component registers itself for use by the application program. A registry associated with the application program is used to store registration information for authorized components. The registry provides a way for a component to advise the application program about the component's functionality. For COM components, the registry typically includes information that identifies particular components, such as global unique identifiers (GUIDs) and class identifiers.
Access to a component, such as a COM object, for example, may be obtained through a class. The class provides an interface between the application program and the component. The GUID for a COM object is associated with a given class.